package portal.dao;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.Query;

import portal.entidades.Compra;
import portal.entidades.ItemCompra;

@Stateless
public class CompraDAOBean extends DAO implements CompraDAO {

	public CompraDAOBean() {

	}

	@Override
	public Compra obtener(Long idCompra) {
		return getEntityManager().find(Compra.class, idCompra);
	}

	@Override
	public void crear(Compra compra) {
		getEntityManager().persist(compra);
	}

	@Override
	public void actualizar(Compra compra) {
		getEntityManager().merge(compra);
	}

	@Override
	public List<Compra> listarMisCompras(Long id_usuario) {
		Query q = getEntityManager().createQuery(
				"SELECT c from Compra c " + "WHERE c.usuario.id = :id_user ");
		q.setParameter("id_user", id_usuario);
		return (List<Compra>) q.getResultList();
	}

	@Override
	public List<Compra> listarCompras() {
		Query q = getEntityManager().createQuery("from Compras");
		return (List<Compra>) q.getResultList();
	}

	@Override
	public void agregarItemCompra(ItemCompra itemc) {
		ItemCompra itc = new ItemCompra();
		itc = itemc;
		getEntityManager().detach(itc);
		getEntityManager().persist(itc);
	}

	@Override
	public void eliminarItemCompra(Long id) {
		ItemCompra itc = getEntityManager().find(ItemCompra.class, id);
		getEntityManager().remove(itc);
	}

	@Override
	public void updateItemCompra(ItemCompra itemC) {
		getEntityManager().merge(itemC);
	}

	@Override
	public Compra crear1(Compra compra) {
		getEntityManager().persist(compra);
		Query q = getEntityManager().createQuery(
				"SELECT MAX(id) FROM Compra");
		Long id = (Long) q.getSingleResult();
		Compra c = getEntityManager().find(Compra.class, id);
		return c;
	}

}
